iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
影片教學

30天讓你從【零基礎】掌握智能合約 Solidity 入門走到飛系列 第 7

Solidity 入門走到飛🚀-【Day7】變量類型 - 映射

  • 分享至 

  • xImage
  •  

影片教學

Yes

主要內容

Solidity 中的哈希表映射(Mapping)類型。

映射(Mapping)
在映射中,你可以透過一個鍵(Key)來查找對應的值(Value),就像透過某人的身份證號碼來查找他的姓名一樣。
聲明映射的格式為 mapping(_KeyType => _ValueType),其中 _KeyType 和 _ValueType 分別表示鍵和值的變數類型。

映射的規則

規則1

映射的 _KeyType 必須選擇 Solidity 默認的類型。

規則2

映射的存儲位置必須是 storage,因此可以用於合約的狀態變數、函數中的 storage 變數,以及庫(library)函數的參數。它不能用於公共函數的參數或返回值,因為映射記錄的是一種關係(鍵值對)。

規則3

如果映射聲明為 public,Solidity 會自動生成一個 getter 函數,允許通過鍵來查詢對應的值。

規則4

要向映射添加新的鍵值對,可以使用語法 _Var[_Key] = _Value,其中 _Var 是映射的變數名,_Key 和 _Value 對應新增的鍵值對。

映射的原理

原理1

映射不存儲任何鍵(Key)的信息,也不存儲鍵(Key)的數量。

原理2

映射使用 keccak256(key) 作為偏移量來存取值(Value)。

原理3

因為 Ethereum 會將所有未使用的存儲空間初始化為0,所以未賦值的鍵(Key)的初始值都是各個類型的默認值。

相關連結

WTF Solidity Mapping


上一篇
Solidity 入門走到飛🚀-【Day6】變量類型 - 引用
下一篇
Solidity 入門走到飛🚀-【Day8】變量初始值 - delete
系列文
30天讓你從【零基礎】掌握智能合約 Solidity 入門走到飛30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言